﻿<%@ WebHandler Language="C#" Class="VisDocumento" %>

using System;
using System.Web;
using Chilis.Marketing.Business.Logic;
using Chilis.Marketing.Business.Entity;

public class VisDocumento : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        int idArte = 0;
        if (context.Request.QueryString["id"] != null)
        {
            int.TryParse(context.Request.QueryString["id"], out idArte);
        }

        if (idArte > 0)
        {
            BLArte arteBL = new BLArte();
            BEArte arteBE = arteBL.obtenerArtePorId(idArte);

            if (arteBE != null && arteBE.TipoArchivo != null)
            {
                string nombreArchivo = arteBE.TituloArchivo + arteBE.TipoArchivo.Extension;
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + nombreArchivo + "\"");
                HttpContext.Current.Response.ContentType = arteBE.TipoArchivo.TipoMime;
                HttpContext.Current.Response.BinaryWrite(arteBE.ContenidoArchivo);
                HttpContext.Current.Response.Flush();
            }
            else
            {
                throw new System.Security.SecurityException("No se ha encontrado el archivo.");
            }
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}